专利摘要:
RESEARCH EXTENSIBILITY FOR THIRD PARTY APPLICATIONS. The present invention relates to at least certain embodiments of the present disclosure that include a method for extending the search capabilities to third party applications installed on a device. In one embodiment, the records associated with a third party application are indexed in an isolated process from other third party applications installed on the device using an auxiliary search extension specific to the third party application. In addition, indexed records can be searched in response to a user's search query without invoking a third-party application.
公开号:BR112012025578B1
申请号:R112012025578-9
申请日:2010-09-23
公开日:2021-01-12
发明作者:Edward T. Schmidt;Gordon J. Freedman;Benjamin S. Phipps;David Rahardja
申请人:Apple Inc.;
IPC主号:
专利说明:

[0001] [0001] This patent application claims the benefit of Provisional Patent Application US 61 / 321,764, filed on April 7, 2010, which is incorporated herein by reference in its entirety.
[0002] [0002] The invention to be revealed and claimed in this patent application was prematurely and without Apple's authorization revealed to the public when an Apple iPhone 4 prototype was apparently stolen from an Apple engineer on March 25, 2010. The United States priority patent application, on which this patent application is based, was not filed before the apparent theft. REVELATION FIELD
[0003] [0003] This disclosure concerns extending the search capabilities to third-party applications on a computing device. BACKGROUND OF THE REVELATION
[0004] [0004] Today, many applications have been developed to run on multifunctional devices, such as cell phones that include media players, personal digital assistants (PDAs), etc. Many of these applications are provided by sources other than the vendor of the multifunctional devices, and consequently, they are commonly referred to as third party applications. These applications can perform a wide variety of functions, such as providing entertainment, managing social networks, etc. By performing these functions, multifunction devices can access content stored on multifunction devices or on a network (for example, the Internet).
[0005] [0005] To make this easier and more convenient for users of multifunction devices to organize and manage the content on multifunction devices, the operating systems installed on the multifunction devices typically provide search capabilities. Because many of the applications installed on multifunctional devices are third-party applications, conventional operating systems installed on multifunctional devices do not extend their search capabilities to these third-party applications. DESCRIPTION SUMMARY
[0006] [0006] Some modalities include one or more application program interfaces (APIs) in an environment with calling program code that interacts with another program code being called through one or more interfaces. Various function calls, messages or other types of invocations, which can additionally include several types of parameters, can be transferred via APIs between the calling program and the code being called. In addition, an API can provide the calling program code with the ability to use the data types or classes defined in the API and implemented in the called program code.
[0007] [0007] At least certain modalities include an environment with a so-called software component that interacts with a software component called through an API. A method for operating through an API in this environment includes transferring one or more function calls, messages, other types of invocations or parameters via the API.
[0008] [0008] At least certain modalities of the present disclosure include one or more APIs in an environment with extended search capabilities for one or more third party applications on a multifunctional device. Various function calls or messages are transferred via APIs between the multifunction device's operating system and third-party applications. Exemplary APIs transfer function calls to implement indexing and searching of content associated with third party applications.
[0009] [0009] Some modalities of the present disclosure include a method for extending search capabilities to third-party applications installed on a multifunctional device. In one embodiment, the records associated with a third-party application are indexed in an isolated process from other third-party applications, system applications, and research batches installed on the multifunctional device using a search extension extension specific to the application of the 3rd. Note that indexing can be performed without invoking a third party application. In addition, indexed records can be searched in response to a user's search query without invoking (for example, starting or executing) the third party application.
[0010] [00010] According to some modalities of the present disclosure, a third-party application installed on a multifunctional device can provide an auxiliary search extension specific to the third-party application. The search helper extension can be started to pass the records associated with the third party application to a search daemon running in a separate process on the multifunction device. Record identifiers (Ids) can specify what a record should look like when the record is displayed in a search result generated in response to a user's search query. Each of the Ids can also include a local ID having sub-ids corresponding to different types of content within a document associated with the respective record.
[0011] [00011] Various devices that perform one or more of the previous methods and machine-readable means that, when executed by a processing system, cause the processing system to execute these methods, are also described.
[0012] [00012] Other machine-readable methods, devices and means are also described. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] [00013] The disclosure is described by way of example with reference to the attached drawings, in which:
[0014] [00014] FIG. 1 illustrates a block diagram of an exemplary API architecture usable in some embodiments of the invention;
[0015] [00015] FIG. 2 is an exemplary embodiment of a software stack usable in some embodiments of the invention;
[0016] [00016] FIG. 3 is a diagram of interactions between a search daemon and a third-party application running on a multifunctional device according to an embodiment of the invention;
[0017] [00017] FIG. 4 is a flowchart of a method modality for configuring the search and indexing capabilities for a third party application on a multifunctional device;
[0018] [00018] FIG. 5 is a flowchart of an embodiment of a method for a third party application on a multifunctional device to process changes in the application data;
[0019] [00019] FIG. 6 is a flow chart of a one-method method for a search daemon on a multifunctional device to process changes in application data associated with a third-party application;
[0020] [00020] FIG. 7 is a flowchart of a method modality for a search daemon on a multifunctional device to index application data;
[0021] [00021] FIG. 8 is a flowchart of an embodiment of a method for an application indexer on a multifunctional device for indexing application data;
[0022] [00022] FIG. 9 is a flowchart of an embodiment of a method for a search daemon to search indexed application data associated with a third party application;
[0023] [00023] FIG. 10 illustrates a modality of a research database on a multifunctional device;
[0024] [00024] FIG. 11 illustrates a modality of a local identifier for an exemplary document;
[0025] [00025] FIG. 12 is a perspective view of a device according to an embodiment of the present disclosure;
[0026] [00026] FIG. 13 shows an embodiment of a wireless device that includes the capability for wireless communication; and
[0027] [00027] FIG. 14 shows another example of a device according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0028] [00028] Various modalities and aspects of the disclosure will be described with reference to the details discussed below, and the attached drawings will illustrate the various modalities. The following description and drawings are illustrative of the disclosure and are not to be construed as limiting the disclosure. Numerous specific details are described to provide a complete understanding of the various modalities of the present revelation. However, in certain instances, well-known or conventional details are not described to provide a concise debate on the modalities of the present revelation.
[0029] [00029] Some portions of the detailed descriptions that follow are presented in terms of algorithms that include operations on data stored within a computer's memory. An algorithm is generally a self-consistent sequence of operations that lead to a desired result. Operations typically require or involve physical manipulation of physical quantities. Usually, although not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has sometimes proved convenient, mainly for reasons of general practice, to refer to these signs as bits, values, elements, symbols, characters, terms, numbers, or others.
[0030] [00030] It should be kept in mind that all these terms and the like are to be associated with the appropriate physical quantities and are merely convenient markings applied to these quantities. Unless otherwise specifically stated as evident from the following debate, it is appreciated that throughout the description, debates using terms such as "processing" or "computation" or "calculation" or "determination" or "display" or others, may refer the action and processes of a data processing system, or similar electronic device that manipulates and transforms the data represented as physical (electronic) quantities within the system's records and memories into other data similarly represented as physical quantities within the system's memories or records system or other such information storage, transmission or display devices.
[0031] [00031] The present disclosure may refer to an apparatus for performing one or more of the operations described here. This apparatus may be specially built for the required purposes, or may comprise a general purpose computer selectively activated or reconfigured by a computer program stored on the computer. Such a computer program may be stored on a machine-readable storage medium (eg computer), such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic- optical read-only memories (ROMs), random access memories (RAMs), programmable deletable ROMs (EPROMs), electrically deletable programmable ROMs (EEPROMs), instant memory, magnetic or optical cards, or any type of media suitable for storing instructions electronics, and each coupled to a bus.
[0032] [00032] A machine-readable medium includes any mechanism for storing or transmitting information in a machine-readable form (for example, a computer). For example, machines store and communicate (internally and with other devices on a network) code and data using machine-readable media, such as machine-readable storage media (for example, magnetic disks; optical disks; random access memory; exclusive reading memory; instant memory devices; phase change memory) and machine-readable media (for example, electrical, optical, acoustic or other forms of propagated signals - such as carrier waves, infrared signals, digital signals , etc).
[0033] [00033] At least certain modalities of the present disclosure include one or more application program interfaces in an environment with research software interacting with a software application. Various function calls or messages are transferred via the application program interfaces between the research software and the software applications. Transferring function calls or messages can include sending, initiating, invoking or receiving function calls or messages. Exemplary application program interfaces transfer function calls to implement various operations (for example, research, network management, service discovery, etc.) to a device that has a display region. An API can also implement functions that have parameters, variables, or pointers. An API can receive parameters as revealed or other combinations of parameters. In addition to the revealed APIs, other APIs individually or in combination may perform similar functionality as the revealed APIs.
[0034] [00034] The display region can be in the form of a window. A window is a display region that may or may not have a border and may be the entire display region or area of a display. In some embodiments, a display region can have at least one window and / or at least one view (for example, network, text, or image content). The methods, systems, and devices disclosed can be implemented with display regions, windows, and / or views.
[0035] [00035] At least certain forms of disclosure may form part of a portable electronic device, such as a digital media player (for example, a portable music and / or video media player) that may include a media processing system to present the media, a storage device for storing the media and may further include a radio frequency (RF) transceiver (for example, an RF transceiver for a cell phone) coupled with an antenna system and the media processing system. In certain embodiments, data stored on a remote storage device can be transmitted to the portable electronic device via the RF transceiver. The data can be, for example, one or more of music or other audio, still images, or movies, etc.
[0036] [00036] The portable media player may include a media selection device, such as a click wheel input device on an iPod® or iPod Nano® media player from Apple Computer, Inc. of Cupertino, CA, a touch screen input device, button device, movable pointing input device, or other input device. The media selection device can be used to select the media stored on the storage device and / or the remote storage device. The portable media player may, in at least certain modalities, include a display device that is coupled to the media processing system to display titles or other media indicators being selected through the input device and being presented, or through a speaker or earphone (s), or on the display device, or display device and a speaker or earphone (s). In some embodiments, the display device and the input device are integrated while in other embodiments the display device and the input device are separate devices.
[0037] [00037] The disclosure modalities described here may form part of other types of data processing systems, such as, for example, entertainment systems or personal digital assistants (PDAs), or general purpose computer systems, or information systems. special-purpose computer, or a device embedded within another device, or cell phones that do not include media players, or multifunctional touch tablet devices, or other multifunctional touch devices, or devices that combine the aspects or functions of these devices ( for example, media player, such as an iPod® portable media player, combined with a PDA, an entertainment system, and a cell phone on a device, an iPhone®). Because these devices in general have multiple functionalities, these devices can also be referred to as multifunctional devices from now on. In this revelation, electronic devices and consumer devices are types of devices.
[0038] [00038] In some modalities, a platform provides various operations for research, service discovery, and network management. The platform includes hardware components and an operating system. Hardware components can include a processing unit attached to an input panel and a memory attached to the processor. The operating system includes one or more programs that are stored in memory and configured to be run by the processing unit. One or more programs include various instructions for transferring function calls or messages through an Application Program Interface (API) to perform various search, service discovery, and network management operations.
[0039] [00039] One or more APIs can be used in some modalities. An API is an interface implemented by a program code component or hardware component (hereinafter "API implementation component") that allows a different program code component or hardware component (hereinafter "API call component") access and use one or more functions, methods, procedures, data structures, classes, and / or other services provided by the API implementation component. An API can define one or more parameters that are passed between the API call component and the API implementation component.
[0040] [00040] An API allows the developer of an API call component (which can be a third party developer) to leverage the provided features specified by an API implementation component. There may be one component of the API call or there may be more than one such component. An API can be a source code interface that a computer system or program library provides to support requests for services from an application. An operating system (OS) can have multiple APIs to allow applications running on the OS to call one or more of those APIs, and a service (such as a program library) can have multiple APIs to allow an application that uses the service to call one or more of those APIs. An API can be specified in terms of a programming language that can be interpreted or compiled when an application is built.
[0041] [00041] In some embodiments, the API implementation component may provide more than one API, each providing a different view or with different aspects that access different aspects of the functionality implemented by the API implementation component. For example, an API from an API implementation component can provide a first set of functions and can be exposed to third-party developers, and another API from the API implementation component can be hidden (not exposed) and provides a subset of the first set of functions and also provides another set of functions, such as testing or debugging functions that are not in the first set of functions. In other embodiments, the API implementation component can call one or more other components via an underlying API and thereby be an API call component and an API implementation component.
[0042] [00042] An API defines the language and parameters that the API call components use when accessing and using the specified characteristics of the API implementation component. For example, an API call component accesses the specified characteristics of the API implementation component through one or more API calls or invocations (incorporated, for example, by function or method calls) exposed by the API, and passes the data and control information using parameters via API calls or invocations. The API implementation component can return a value through the API in response to an API call from an API call component. Although the API defines the syntax and result of an API call (for example, how to invoke the API call and what the API call does), the API may not reveal how the API call performs the function specified by the call API. Several API calls are transferred through one or more application program interfaces between the call (API call component) and an API implementation component. Transfer of API calls may include sending, initiating, invoking, calling, receiving, returning, or responding to function calls or messages; in other words, transfer can describe actions by any one of the API call component or the API implementation component. Function calls or other API invocations can send or receive one or more parameters via a parameter list or other structure. A parameter can be a constant, key, data structure, object, object class, variable, data type, pointer, arrangement, list, or a pointer to a function or method or another way to refer to a data or other item. be passed through the API.
[0043] [00043] In addition, data types or classes can be provided by the API and implemented by the API implementation component. In this way, the API call component can declare variables, use pointers, use or instantiate constant values of such types or classes using the definitions provided in the API.
[0044] [00044] In general, an API can be used to access a service or data provided by the API implementation component or to initiate the performance of an operation or computation provided by the API implementation component. For example, the API implementation component and the API call component can each be from an operating system, a library, a device driver, an API, an application program, or another module (should be understood that the API implementation component and the API call component can be the same type of module or different from each other). The components of API implementation may, in some cases, be incorporated at least in part into firmware, microcode, or other hardware logic. In some embodiments, an API may allow a client program to use the services provided by a Software Development Kit (SDK) library. In other embodiments, an application or other client program may use an API provided by an Application Framework. In these modalities, the application or client program can incorporate a call to the functions or methods provided by the SDK and provided by the API or use the types of data or objectives defined in the SDK and provided by the API. An Application Framework can provide, in these modalities, a main event loop for a program that responds to various events defined by the Framework. The API allows the application to specify events and responses to events using the Application Framework. In some implementations, an API call can report to an application the capabilities or state of a hardware device, including those related to aspects such as input and status capabilities, output and status capabilities, processing power, power state, storage and state capacity, communications capacity, etc., and the API can be implemented in part by firmware, microcode, or other low-level logic that operates, in part, on the hardware component.
[0045] [00045] The API call component can be a local component (that is, in the same data processing system as the API implementation component) or a remote component (that is, in a different data processing system than API implementation component) that communicates with the API implementation component through the API over a network. It should be understood that an API implementation component can also act as an API call component (that is, it can make API calls to an API exposed by a different API implementation component) and an API call component can also act as an API implementation component by implementing an API that is exposed to a different API call component.
[0046] [00046] The API can allow multiple API call components written in different programming languages to communicate with the API implementation component (so the API can include features to translate calls and returns between the API implementation component and the API call component); however, the API can be implemented in terms of a specific programming language. An API call component can, in one embodiment, call APIs from different providers such as one set of APIs from one OS provider and another set of APIs from an auxiliary extension provider and another set of APIs from another provider (for example, example the provider of a software library) or creator of the other set of APIs.
[0047] [00047] FIG. 1 is a block diagram illustrating an exemplary API architecture that can be used in some embodiments of the invention. As shown in FIG. 1, the API 100 architecture includes the API 110 implementation component (for example, an operating system, a library, a device driver, an API, an application program, software, or other module) that implements API 120. API 120 specifies one or more functions, methods, classes, objects, protocols, data structures, formats and / or other characteristics of the API implementation component that can be used by the API 130 calling component. API 120 can specify at least one calling convention that specifies how a function in the API implementation component receives the parameters from the API call component and how the function returns a result for the API call component. The API 130 calling component (for example, an operating system, a library, a device driver, an API, an application program, software, or other module) makes API calls through API 120 to access and use the features of the API 110 implementation component that are specified by API 120. The API 110 implementation component can return a value through API 120 for API call component 130 in response to an API call.
[0048] [00048] It will be appreciated that the API 110 implementation component can include functions, methods, classes, data structures, and / or other additional features that are not specified by API 120 and are not available for API 130 calling component It should be understood that the API 130 calling component can be on the same system as the API 110 implementation component or it can be located remotely and access the API 110 implementation component using API 120 over a network. Although Figure 1 illustrates a single API call component interacting with API 120, it should be understood that other API call components, which can be written in different languages (or in the same language) as the API call component 130, can use API 120.
[0049] [00049] The API 110 implementation component, API 120, and the API 130 calling component can be stored in a machine-readable medium that includes any mechanism for storing information in a machine-readable form (for example, computer or other data processing system). For example, a machine-readable medium includes magnetic disks, optical disks, random access memory; exclusive read memory, instant memory devices, etc.
[0050] [00050] In FIG. 2 ("Software Stack"), an exemplary modality, applications can make calls to Services 1 or 2 using various Service APIs and to the Operating System (OS) using various OS APIs. Services A and B can make calls to the OS using various OS APIs.
[0051] [00051] Note that Service 2 has two APIs, one of which (API 1 of Service 2) receives calls and returns values for Application 1 and the other (API 2 of Service 2) receives calls and returns values for Application 2. Service 1 (which can be, for example, a software library) makes calls and receives the returned values from API 1 of the OS, and Service 2 (which can be, for example, a software library) makes calls and receives the returned values from both API 1 OS and API 2 OS. Application 2 makes calls and receives the values returned from API 2 of the OS.
[0052] [00052] FIG. 3 is a diagram of interactions between a search daemon 320 and a third-party application 310 running on a multifunctional device according to an embodiment of the invention. A third party application as used herein refers largely to a software application provided by an entity other than the manufacturer of the multifunctional device. Typically, a multifunction device user can install one or more executable third-party applications on the multifunction device to perform a specific set of tasks or functions. Some examples of third-party applications include e-book viewer, social network manager, etc.
[0053] [00053] In general, the multifunctional device can store the application data associated with the third party application 310 indexed through the search daemon 320 in a search database 380 on the multifunctional device. In one embodiment, the device may have a plurality of third-party applications, such as application 310, each running within the manner described here, the search daemon 320 or a search instance daemon 320 created for a corresponding third-party application that uses the instance. In some embodiments, the search daemon 320 can start an application indexer 330 to index the application data. Specifically, application indexer 330 can initiate an instance of an application search batch 340 provided by third party application 310 to retrieve records of application data for indexing. Note that application search batch 340 is started in a separate process isolated from other third party applications, system applications, and research batches for security reasons. In addition, the separate process in which application search batch 340 is started may have the same privileges (for example, privileges with respect to reading and writing in a selected portion of a memory space but otherwise restricted to writing or reading in other portions of memory) as a third-party application 310 associated with application search batch 340. In this way, application search batch 340 is granted access to content that third-party application 310 is allowed to access, and is prohibited from access content that third-party application 310 is not allowed to access. In some embodiments, portions of search daemon 320, such as application indexer 330, may also enjoy the same privileges (for example, memory space restrictions) as a third-party application 310. In some embodiments, search daemon 320 you can search the application data indexed in the search database 380 in response to user queries without starting the third-party application 310. Details of some modalities of the interactions between the search daemon 320 and the third-party application 310 for the data of indexing and search applications are discussed below to further illustrate the above concept.
[0054] [00054] In one embodiment, the third-party application 310 is started to run on the multifunctional device. While running, third party application 310 makes changes to application data 315. For example, third party application 310 can modify an existing record stored on the multifunction device, transfer a new record to the multifunction device, and / or remove (or delete ) an existing record stored on the multifunction device. When third-party application 310 changes application data 315, third-party application 310 additionally sends identifiers (Ids) of changed records in application data 315 to search daemon 320. Search daemon 320 can temporarily store the record IDs changed in an update list 325.
[0055] [00055] Then, when search daemon 320 needs to build indexed data, search daemon 320 can start a separate process to run application indexer 330. Search daemon 320 can build indexed data periodically, or when a search is required, or at some other time or time intervals. Alternatively, search daemon 320 can build indexed data when search daemon 320 finds new information in update list 325. This can happen when third-party application 310 informs search daemon 320 of update identifiers. There may also be external triggers for application 310 that can start indexing, such as, for example, application updates, system restores, system updates, etc. Application index 330 can load application search batch 340. In some embodiments, application search batch 340 is an auxiliary extension related to search specific to third-party application 310. Third-party application 310 may have provided the batch of application search 340 under installation of third party application 310 on the multifunction device. Application indexer 330 can provide the Ids of the changed records from update list 325 for application search batch 340. In response, application search batch 340 provides the changed records for application index 330 to be indexed. Alternatively, application indexer 330 may request all records associated with third party application 310 from application search batch 340. In one embodiment, the instance of application indexer 330 for third party application 310 will be run in its own process, but with the privileges (with respect to memory control, memory space, memory allocation, filing system control, and network control) than the third-party application 310.
[0056] [00056] In some modalities, each record includes a set of attributes that dictate how the respective record should be displayed in a search result if it is paired with a user's search query. For example, an exemplary record can include an ID, a content title, a content subtitle, and an application-specific ID (also referred to as a local ID). When the record matches a user's search query, the record's title and subtitle can appear in the search result for the user's search query.
[0057] [00057] Using the records of the application search batch 340, the application indexer 330 can build or add a record in the search database 380 that can include metadata of the content associated with the record. In some embodiments, the search database 380 includes multiple databases synchronized with each other. For example, the search database 380 may include a first database for storing indexed content and a second database for storing records of indexed content. More details on a modality of a research database are discussed below.
[0058] [00058] When a user submits a user's search query, search daemon 320 can access search database 380 to find records that match the user's search query. Note that search daemon 320 can search records associated with application data from third party application 310 without starting third party application 310. Search daemon 320 can display parts of the records that match the user's search query, such as , for example, display titles and subtitles of paired records in a search result region within a window. In some modalities, the user can select a record from the paired records. In response to the user's selection, search daemon 320 can launch third-party application 310 on the multifunction device to display the content associated with the selected record. For example, the content can include video data and third party application 310 can be started to represent the video; or the content can include an electronic book and the third party application 310 can be launched to display the electronic book.
[0059] [00059] FIG. 4 is a flowchart of a one-way modality for configuring the search and indexing capabilities for a third-party application on a multifunctional device. The method can be performed by hardware, software, firmware, or a combination of any of the above.
[0060] [00060] In some embodiments, the installation of a third party application is initiated on a multifunctional device in block 410. A batch of application research specific to the third party application is stored in a predetermined location with the third party application on the multifunctional device in block 420. Generally speaking, the application search batch is an auxiliary extension provided by the third party application. The application search batch can be loaded to transfer the content records associated with the third party application. In block 430, third party application metadata is checked to determine whether the third party application wants to index the content associated with the third party application. If the third party application wants to index the content, the third party application is registered in block 445. For example, a search daemon running on the multifunction device can keep track of a list of registered applications in a centralized location and the search daemon you can index the content associated with the third party application as discussed below.
[0061] [00061] FIG. 5 is a flowchart of an embodiment of a method for a third party application on a multifunctional device to process changes in the application data. The method can be performed by hardware, software, firmware, or a combination of any of the above.
[0062] [00062] In some embodiments, a third-party application is run on a multifunctional device in block 510. In block 520, the third-party application changes the application data records associated with the third-party application. In block 530, the third party application sends the identifiers (Ids) of the changed records to a search daemon running on the multifunctional device.
[0063] [00063] FIG. 6 is a flowchart of a one-method method for a search daemon on a multifunctional device to process changes in application data associated with a third-party application. The method can be performed by hardware, software, firmware, or a combination of any of the above.
[0064] [00064] In block 610, a search daemon running on a multifunctional device receives the changed record Ids of the application data associated with a third party application. The search daemon puts the received Ids in an update list at block 620. The search daemon can use the update list later to determine whether to index the records as discussed below.
[0065] [00065] FIG. 7 is a flowchart of a modality of a method for a search daemon on a multifunctional device to index the application data. The method can be performed by hardware, software, firmware, or a combination of any of the above.
[0066] [00066] In block 710, the search daemon checks an update list to determine if there are any changed records. In some ways, the search daemon may check the update list periodically. If so, then the search daemon has to index the changed record. The search daemon can start an application indexer in a separate process to index the changed record in block 720.
[0067] [00067] FIG. 8 is a flowchart of an embodiment of a method for an application indexer on a multifunctional device for indexing application data. The method can be performed by hardware, software, firmware, or a combination of any of the above.
[0068] [00068] In block 810, an application indexer running on a multifunctional device instantiates an instance of an application search batch in a separate process isolated from other third party applications, system applications, and survey batches. The application search batch is an auxiliary extension specific to a third-party application installed on the multifunction device. In block 820, the application indexer passes the changed record Ids to the application search batch requiring the changed records of the application search batch. Alternatively, the application indexer may decide to index all records associated with the third party application, and thereby require all records associated with the third party application from the application search batch.
[0069] [00069] In block 830, the application indexer receives the required records from the application search batch. Each record can contain a set of content attributes associated with the record, such as content title, content subtitle, and local content identifier used by the third party application. In block 840, the application indexer indexes the received records and stores the indexed records in a search database within the multifunctional device.
[0070] [00070] FIG. 9 is a flowchart of a one-method method for a search daemon to search the indexed application data associated with a third-party application. The method can be performed by hardware, software, firmware, or a combination of any of the above.
[0071] [00071] In block 910, a search daemon receives a search query from the user. For example, a user can submit a user's search query to search for records with a title that has a specific text string (for example, "spring"). In block 920, the search daemon searches a search database that contains records indexed to records that match the user's search query.
[0072] [00072] In block 930, the search daemon returns an identifier for each record that matches the user's search query in a search result to be presented to the user. In some embodiments, the identifier includes a title, a subtitle, a reference to the associated third-party application, a local identifier (specific to the third-party application), and a category.
[0073] [00073] In some modalities, the owner of a search box in which the user's search query is entered receives the search results from the search daemon at the time of the query. The user can select a record of the search result. The owner can be a search application, or a third party application. If the owner is a search application performing global searches, the search application can launch the third-party application and pass the search daemon's local identifier and category. If the owner is a third party application, he can simply display the content associated with the selected record. Note that when the owner is the third party application, only records in the search result relevant to the third party application can be shown.
[0074] [00074] FIG. 10 illustrates a modality of a search database 1000 on a multifunctional device. The search database 1000 includes a first database 1010 and a second database 1020. In other embodiments, the search database 1000 may include more than two databases.
[0075] [00075] In some embodiments, the first 1010 database stores content (for example, a document, a web page, an electronic book, a video, etc.) associated with some third party applications and their respective Ids. The second database 1020 can store the records of the content. In the current example, each record includes the content ID, a content title, a content subtitle, and a local content ID. The local ID is used by a third party application to access and process the content. In this way, the local ID can also be referred to as an application ID. Details of an embodiment of a local ID are shown in FIG. 11. The content in the search database 1000 is organized by indexing the records. A search daemon running on the multifunction device can index the records and search the search database 1000 in response to the user's search queries as discussed above.
[0076] [00076] In some modalities, the search database 1000 stores the content of all categories (for example, music, video, electronic books, podcasts, etc.) on the multifunctional device. Although the search performed on the search database 1000 can be fast, the search database 1000 can become too large for backup. As such, the search database 1000 may have to be rebuilt from scratch if necessary.
[0077] [00077] Alternatively, there is a search database for each content category on the multifunctional device. For example, a first research database can be established for music, a second research database can be established for podcasts, a third research database can be established for electronic books, a fourth research database for a first third party application, and a fifth research database for a second third party application, and so on. Separating the contents of the different categories in different research databases, the research databases can be supported at different frequencies depending on how stable the content is in each research database. The more stable the content, the less frequently the corresponding search database has to be backed up. However, searching for content in search databases can be slow because of multiple search databases. To mitigate the performance impact, a temporary storage memory (cache) can be implemented in the multifunctional device to store records of frequently accessed content. As such, searches can get faster.
[0078] [00078] FIG. 11 illustrates an embodiment of an exemplary document ID. The ID 1100 includes a copy document title 1110, a copy document subtitle 1120, a third party application 1130 associated with the copy document, a category identifier 1140 of the copy document, and a specific ID 1150 for application of the copy document.
[0079] [00079] In some embodiments, ID 1100 is unique for a particular category within the application of a third party. A category is the type of content, such as slide, video, document, podcast, etc. In this way, the application-specific ID 1150 is unique by category, and each category is unique within the third-party application.
[0080] [00080] In some modalities, a third-party application may be associated with content from multiple categories. For example, a third-party application can be associated with a document in which a video and podcast is embedded. The third party application can place such a document under a simple category (for example, Documents) with respect to the search daemon. If the third party application wants to be able to return a better granularity of the result, for example, only the podcast part of the document, it could provide an ID that points directly to the podcast and indexes it in a category of Podcasts. The third party application could choose to submit either or both of these to indexing. The search daemon may not differentiate between a result with sub-pieces and a simple atomic result.
[0081] [00081] In some embodiments, the methods, systems, and apparatus of the present disclosure can be implemented on various devices including electronic devices, consumer devices, data processing devices, desktop computers, portable computers, wireless devices, cellular devices , tablet devices, handheld devices, multitouch devices, multitouch data processing devices, any combination of these devices, or other similar devices. Figures 12-14 illustrate examples of some of these devices.
[0082] [00082] FIG. 12 shows a 2950 device according to a disclosure mode. The 2950 device may include a 2952 housing, a 2954 display / input device, a 2956 speaker, a 2958 microphone and an optional 2960 antenna (which may be visible outside the housing or may be hidden within the housing). The 2950 device can also include a 2962 proximity sensor and a 2964 accelerometer. The 2950 device can be a cell phone or a device that is an integrated PDA and a cell phone or a device that is an integrated media player and a cell phone or a device that is both an entertainment system (for example to play games) and a cell phone, or the 2950 device can be other types of devices described here. In a particular embodiment, the 2950 device may include a cell phone and media player and a PDA, all contained within the 2952 housing. The 2950 device may have a form factor that is small enough to fit inside an adult's hand. normal and light enough that it can be carried in one hand by an adult. It will be appreciated that the term "portable" means the device can be easily held in the hands of an adult user (one or both); for example, a laptop, an iPhone®, and an iPod® are portable devices.
[0083] [00083] In certain embodiments of the present disclosure, the 2950 device can be used to implement at least some of the methods discussed in the present disclosure.
[0084] [00084] FIG. 13 shows an embodiment of a wireless device that includes the capability for wireless communication. The 3100 wireless device may include an 3101 antenna system. The 3100 wireless device may also include a 3102 digital and / or analog radio frequency (RF) transceiver, coupled to the 3101 antenna system, to transmit and / or receive voice, digital data and / or media signals via the 3101 antenna system.
[0085] [00085] The wireless device 3100 may also include a digital processing system 3103 to control the digital RF transceiver and manage voice, digital data and / or media signals. Digital processing system 3103 can be a general purpose processing device, such as a microprocessor or controller for example. Digital processing system 3103 can also be a special purpose process device, such as an ASIC (application specific integrated circuit), FPGA (field programmable port arrangement) or DSP (digital signal processor). The 3103 digital processing system may also include other devices, as is known in the art, to interface with other 3100 wireless device components. For example, the 3103 digital processing system may include analog-to-digital and digital-to-converters. - analogue to interface with other 3100 wireless device components. The 3103 digital processing system may include a 3109 media processing system that may also include a general or special processing device for managing media, such as media files. audio data.
[0086] [00086] The wireless device 3100 may also include a storage device 3104, coupled to the digital processing system, to store data and / or operational programs for the wireless device 3100. Storage device 3104 can be, for example, any type of solid state or magnetic memory device. The storage device 3104 can be or include a machine-readable medium.
[0087] [00087] The wireless device 3100 may also include one or more input devices 3105, coupled with the digital processing system 3103, to accept user inputs (for example, phone numbers, names, addresses, media selections, etc. ). Input device 3105 can be, for example, one or more of a complementary keyboard, a touch sensitive device, a touch screen, a pointing device in combination with a display device or similar input device.
[0088] [00088] The wireless device 3100 may also include at least one display device 3106, coupled with the digital processing system 3103, to display information such as messages, phone call information, contact information, images, films and / or titles or other media indicators that are selected via the 3105 input device. The 3106 display device can be, for example, an LCD display device. In one embodiment, the display device 3106 and the input device 3105 can be integrated into the same device (for example, an LCD touch screen such as a multi-touch input panel that is integrated with a display device, such as an LCD display device). Display device 3106 may include a rear light 3106A to illuminate display device 3106 under certain circumstances. It will be appreciated that the 3100 wireless device may include multiple displays.
[0089] [00089] The wireless device 3100 may also include a battery 3107 to provide operational power to system components including RF digital transceiver 3102, digital processing system 3103, storage device 3104, input device 3105, microphone 3105A, audio transducer 3108, 3109 media processing system, 3110 sensor (s), and 3106 display device. Battery 3107 can be, for example, a rechargeable or non-rechargeable lithium metal hydride or nickel battery. The wireless device 3100 may also include audio transducer 3108 which may include one or more speakers, and at least one microphone 3105A. In certain embodiments of the present disclosure, the wireless device 3100 may be used to implement at least some of the methods discussed in the present disclosure.
[0090] [00090] FIG. 14 show another example of a device according to an embodiment of the disclosure. This 3200 device can include a processor, such as microprocessor 3202, and a memory 3204 that is coupled to each other via a 3206 bus. The 3200 device can optionally include a buffer storage 3208 that is coupled to processor 3202. The The device can optionally include a 3240 storage device which can be, for example, any memory device of the solid or magnetic state type. The 3240 storage device may be or include a machine-readable medium.
[0091] [00091] This device can also optionally include a video controller and 3210 display device that is coupled to the other components via the 3206 bus. One or more 3212 input / output controllers are also coupled to the 3206 bus to provide an interface for the 3214 input / output devices and provide an interface for one or more 3216 sensors that are for capturing user activity. The 3206 bus can include one or more buses connected to each other via various bridges, controllers, and / or adapters as is well known in the art. The 3214 input / output devices can include a complementary keyboard or keyboard or a cursor control device such as a touch input panel. In addition, 3214 input / output devices may include a network interface that is for a wired network or a wireless network (for example an RF transceiver). The 3216 sensors can be any of the sensors described here including, for example, a proximity sensor or an ambient light sensor. In at least certain implementations of the 3200 device, the microprocessor 3202 can receive data from one or more 3216 sensors and can perform analysis of that data in the manner described here.
[0092] [00092] In certain embodiments of the present disclosure, the 3200 device can be used to implement at least some of the methods discussed in the present disclosure.
[0093] [00093] In the previous specification, the disclosure was described with reference to the specific exemplary modalities of the same. It will be evident that several modifications can be made to this without abandoning the wider spirit and scope of the revelation as exposed in the embodiments. Consequently, the specification and drawings are to be considered in an illustrative rather than a restrictive sense.
权利要求:
Claims (15)
[0001]
Method characterized by the fact that it comprises the steps of: starting an application indexer to operate on a process having privileges identical to the privileges of a third-party application executable on a processor, where the process is separate from other processes involving other third-party applications executable on the processor; instantiate, through the application indexer, an instance of an application search batch specific to the third party application, the instance running with read and write privileges identical to the read and write privileges of the third party application, of the third party application providing the application search package specific to the third party application access to records in an application data store associated with the third party application; and request, by the application indexer of the application search package instance, the records identified by the identifications passed to the application search package instance by the application indexer, where the application search package instance retrieves the identified records from the application data storage without starting the third party application, the application indexer by indexing the records of the application search batch instance to store the indexed records in a search database.
[0002]
Method, according to claim 1, characterized by the fact that the other processes include research and indexing processes of other third-party applications.
[0003]
Method, according to claim 1, characterized by the fact that the operations additionally comprise: the application indexer passes the IDs associated with the records in an update list to the application search batch to request the records, where the updated IDs are added to the update list when the third party application provides the updated IDs in response changing the corresponding records.
[0004]
Method characterized by the fact that it comprises the steps of: install a third-party application on a computing device, the third-party application providing an auxiliary search extension specific to the third-party application to access records in an application data store associated with the third-party application; check third party application metadata to determine the existence of metadata indicating that the third party application wants to index records in the application data store associated with the third party application; register the third party application in response to the metadata determination indicating that the third party application wants to index the records in the application data store associated with the third party application; and instantiate, by a search daemon specific to the third party application and running on the computing device, an instance of the search helper extension to run in a separate process that runs with read and write privileges identical to read and write privileges of the third-party application, the search daemon to request a record associated with the third-party application from the search auxiliary extension instance when passing an identification to the record to the search auxiliary extension instance and to receive the identified record from the extension instance search helper in response to the search helper extension instance that receives the identifier, where the search helper extension instance retrieves the identified record from the application's data store without starting the third-party application.
[0005]
Method, according to claim 4, characterized by the fact that it still comprises: launch the third-party application in response to a user request, where the third-party application changes a record and sends a corresponding ID from the changed record to a search daemon running on the computing device to be stored in an update list in response the change, the update list being usable by the search daemon to index the changed record.
[0006]
Method according to claim 4, characterized by the fact that the auxiliary research extension is invoked after the third party application has been completed.
[0007]
Method according to claim 4, characterized by the fact that it still comprises: provide the separate process with privileges identical to the privileges entitled by the third party application.
[0008]
Method characterized by the fact that it comprises: a third-party application, executable on a data processing device, specifying a set of attributes of a record to be displayed when the record becomes part of a search result from a search performed by a search daemon in response to a query user research; and the third-party application provides a batch of application search specific to the third-party application to access records in an application data store associated with the third-party application, an instance of the application search package instantiated by the search daemon to run with privileges read and write identical to the read and write privileges of the third party application, in which a search indexer, instantiated by the search daemon to index the records, requests the records of the application search package instance, passing record identifiers to the application search packet instance and receives the records from the application search packet instance, the records passed by the application search packet instance in response to receiving the IDs, and where the application search packet instance retrieves records from the application data store without starting third-party application.
[0009]
Method, according to claim 8, characterized by the fact that it still comprises: the application of third parties by changing the records of the content associated with the application of third parties; store the identifiers of the changed records in a list accessible by the search indexer.
[0010]
Method, according to claim 9, characterized by the fact that the search indexer retrieves the identifiers from the list after the third party application has ended and uses the identifiers to obtain the changed records of the application search batch.
[0011]
Apparatus, characterized by the fact that it comprises: an application indexer, executable on a data processing device, to operate on a process having privileges identical to the privileges of a third-party application executable on the data processing device, where the process is separate from other processes involving other applications third-party executables on the data processing device; and a search database stored on a data storage device coupled to the data processing device, where the application indexer is operable to run with read and write privileges identical to the read and write privileges of the third party application, the third party application to provide the search application package specific to the third party application to access the records in a data store associated with the third party application, and where the application indexer is still operable to index records in the database search received from the application search package instance in response to a request received from the application search package instance in the received search database.
[0012]
Apparatus, according to claim 11, characterized by the fact that another application indexer is executable in the data processing system in another process having privileges identical to the privileges of another executable third party application in the data processing system.
[0013]
Apparatus, according to claim 11, characterized by the fact that the application indexer is operable to pass the identifications associated with the records in an update list for the application search batch to request the records, in which the identifications were added to the update list when the third party application provides the updated IDs in response to the change to the corresponding records.
[0014]
Apparatus according to claim 11, characterized by the fact that it still comprises: a display device for displaying a graphical user interface for receiving a search query from a user; and a search daemon, executable on the data processing device, to search indexed records in the search database for records that match the search query without invoking a third-party application.
[0015]
Apparatus, according to claim 14, characterized by the fact that the graphical user interface presents the records that match the search query and allows the user to select a record from the records that match the search query, and in response to user selecting the record, the data processing device is operable to start the third party application to present the record selected by the user.
类似技术:
公开号 | 公开日 | 专利标题
BR112012025578B1|2021-01-12|METHOD AND APPARATUS FOR RESEARCH EXTENSIBILITY FOR THIRD PARTY APPLICATIONS
KR102124231B1|2020-06-17|Streaming content and placeholders
US8694981B2|2014-04-08|Shared resource dependencies
ES2835738T3|2021-06-23|Search across multiple data sources using a mobile computing device
BR112015027040B1|2022-01-25|Method, computing device and computer storage medium
US20130067600A1|2013-03-14|Selective file access for applications
US8621488B2|2013-12-31|Method and apparatus for intercommunications amongst device drivers
CN102214093B|2016-01-13|To the search extensibility of third-party application
US20210014206A1|2021-01-14|Searching content associated with multiple applications
US20130179414A1|2013-07-11|Mechanisms for connecting files between applications
US8196153B1|2012-06-05|Method and apparatus for associating device drivers via a device tree
US8352468B2|2013-01-08|Top search hits based on learned user preferences
WO2015180272A1|2015-12-03|Software licensing method and system
US20190034209A1|2019-01-31|Building and using behavior-based applications
US11023228B2|2021-06-01|Indexer operation and generation of index data
US20210216539A1|2021-07-15|Uniform access to diverse structured information for client applications
WO2022052758A1|2022-03-17|Network configuration method and device
Späth2018|Content Providers
KR20160061593A|2016-06-01|Mobile device and communication system thereof
Vienna2014|WP3–Architecture, Functional & Technical Specification, Security & Privacy Concept, Integration D3. 2.2: Technical Specification
同族专利:
公开号 | 公开日
JP5730985B2|2015-06-10|
JP2013527521A|2013-06-27|
WO2011126510A1|2011-10-13|
JP2015015055A|2015-01-22|
BR112012025578A2|2017-11-28|
EP2556431A1|2013-02-13|
AU2010350748A1|2012-11-01|
KR20130008058A|2013-01-21|
MX2012011616A|2012-11-30|
CA2794715C|2016-04-12|
US20110252038A1|2011-10-13|
CA2794715A1|2011-10-13|
HK1163286A1|2012-09-07|
TW201140436A|2011-11-16|
DE112010005475T5|2013-01-31|
KR101517659B1|2015-05-04|
AU2010350748B2|2014-03-20|
US9098363B2|2015-08-04|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US6279154B1|1998-10-13|2001-08-21|Hewlett-Packard Company|Apparatus and method for an install system for third party applications|
US6338056B1|1998-12-14|2002-01-08|International Business Machines Corporation|Relational database extender that supports user-defined index types and user-defined search|
JP2000322418A|1999-05-07|2000-11-24|Fujitsu Ltd|Data base system|
US7448042B1|2003-05-06|2008-11-04|Apple Inc.|Method and apparatus for providing inter-application accessibility|
US20050091658A1|2003-10-24|2005-04-28|Microsoft Corporation|Operating system resource protection|
EP1574970A1|2004-03-09|2005-09-14|Exalead|Computer program for accessing information records of different applications|
US20060085401A1|2004-10-20|2006-04-20|Microsoft Corporation|Analyzing operational and other data from search system or the like|
US8677274B2|2004-11-10|2014-03-18|Apple Inc.|Highlighting items for search results|
US10769215B2|2005-07-14|2020-09-08|Conversant Wireless Licensing S.A R.L.|Method, apparatus and computer program product providing an application integrated mobile device search solution using context information|
CN101535952B|2005-08-19|2014-06-04|谷歌公司|Software architecture for displaying information content from plug-in modules in a user interface|
US7657585B2|2005-10-25|2010-02-02|Innternational Business Machines Corporation|Automated process for identifying and delivering domain specific unstructured content for advanced business analysis|
US8019632B2|2006-10-16|2011-09-13|Accenture Global Services Limited|System and method of integrating enterprise applications|
US7877368B2|2007-11-02|2011-01-25|Paglo Labs, Inc.|Hosted searching of private local area network information with support for add-on applications|
US8244658B2|2008-05-01|2012-08-14|Salesforce.Com, Inc.|System, method and computer program product for generating a set of instructions to an on-demand database service|EP2410441A1|2010-07-16|2012-01-25|Research In Motion Limited|Registration of applications and unified media search|
US9148429B2|2012-04-23|2015-09-29|Google Inc.|Controlling access by web applications to resources on servers|
US9262420B1|2012-04-23|2016-02-16|Google Inc.|Third-party indexable text|
US8751493B2|2012-04-23|2014-06-10|Google Inc.|Associating a file type with an application in a network storage service|
US9195840B2|2012-04-23|2015-11-24|Google Inc.|Application-specific file type generation and use|
US9176720B1|2012-04-23|2015-11-03|Google Inc.|Installation of third-party web applications into a container|
US8990183B2|2012-06-06|2015-03-24|Microsoft Technology Licensing, Llc|Deep application crawling|
US9317709B2|2012-06-26|2016-04-19|Google Inc.|System and method for detecting and integrating with native applications enabled for web-based storage|
CN103546358B|2012-07-09|2016-05-04|腾讯科技(深圳)有限公司|Towards instant communication method and the system of third party's application|
DE102012019063A1|2012-09-28|2014-04-03|Audi Ag|Method and system for providing data in a motor vehicle|
US9135049B2|2012-10-16|2015-09-15|Red Hat Israel, Ltd.|Performing thin-provisioning operations on virtual disk images using native features of the storage domain|
US9529785B2|2012-11-27|2016-12-27|Google Inc.|Detecting relationships between edits and acting on a subset of edits|
US9223870B2|2012-11-30|2015-12-29|Microsoft Technology Licensing, Llc|Decoration of search results by third-party content providers|
US9104787B2|2012-12-14|2015-08-11|Microsoft Technology Licensing, Llc|Augmenting search results with relevant third-party application content|
US20140189136A1|2012-12-31|2014-07-03|Oracle International Corporation|Enforcing web service policies attached to clients operating in restricted footprint platforms|
US9002821B2|2013-01-16|2015-04-07|Google Inc.|Indexing application pages of native applications|
US9146972B2|2013-03-15|2015-09-29|Google Inc.|Ranking of presentation modes for particular content|
US8996520B2|2013-03-15|2015-03-31|Google Inc.|Ranking of native application content|
US9430578B2|2013-03-15|2016-08-30|Google Inc.|System and method for anchoring third party metadata in a document|
WO2014160934A1|2013-03-28|2014-10-02|Google Inc.|System and method to store third-party metadata in a cloud storage system|
US9461870B2|2013-05-14|2016-10-04|Google Inc.|Systems and methods for providing third-party application specific storage in a cloud-based storage system|
US9135346B2|2013-06-07|2015-09-15|Google Inc.|Index data for native applications|
US9971752B2|2013-08-19|2018-05-15|Google Llc|Systems and methods for resolving privileged edits within suggested edits|
US9311407B2|2013-09-05|2016-04-12|Google Inc.|Native application search results|
US9348803B2|2013-10-22|2016-05-24|Google Inc.|Systems and methods for providing just-in-time preview of suggestion resolutions|
US9720672B2|2014-01-06|2017-08-01|Quixey, Inc.|Searching and accessing application functionality|
US9608870B1|2014-02-28|2017-03-28|Google Inc.|Deep link verification for native applications|
US9251224B2|2014-03-04|2016-02-02|Google Inc.|Triggering and ranking of native applications|
US9652508B1|2014-03-05|2017-05-16|Google Inc.|Device specific adjustment based on resource utilities|
US10061796B2|2014-03-11|2018-08-28|Google Llc|Native application content verification|
US9645980B1|2014-03-19|2017-05-09|Google Inc.|Verification of native applications for indexing|
US9524347B1|2014-04-01|2016-12-20|Google Inc.|Automatically implementing an application in response to a search query|
US9513961B1|2014-04-02|2016-12-06|Google Inc.|Monitoring application loading|
US9767159B2|2014-06-13|2017-09-19|Google Inc.|Ranking search results|
US10210263B1|2014-06-24|2019-02-19|Google Llc|Native application search results|
CN106687949B|2014-06-24|2020-11-17|谷歌有限责任公司|Search results for native applications|
US10013496B2|2014-06-24|2018-07-03|Google Llc|Indexing actions for resources|
US9892190B1|2014-06-25|2018-02-13|Google Inc.|Search suggestions based on native application history|
JP6370408B2|2014-06-25|2018-08-08|グーグル エルエルシー|Deep links for native applications|
US10049367B2|2014-09-26|2018-08-14|General Electric Company|Product compliance fulfillment portal system and method|
US10769184B2|2015-06-05|2020-09-08|Apple Inc.|Systems and methods for providing improved search functionality on a client device|
US9348671B1|2015-07-23|2016-05-24|Google Inc.|Monitoring application loading|
CN107045510A|2016-02-05|2017-08-15|优信拍(北京)信息科技有限公司|A kind of data search method and device|
US10862968B2|2016-04-01|2020-12-08|Intel IP Corporation|Sensor data search platform|
US10931679B2|2016-06-07|2021-02-23|Microsoft Technology Licensing, Llc|Service actions for digital assistants|
法律状态:
2019-01-08| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]|
2019-08-06| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]|
2020-07-07| B07A| Technical examination (opinion): publication of technical examination (opinion) [chapter 7.1 patent gazette]|
2020-11-17| B09A| Decision: intention to grant [chapter 9.1 patent gazette]|
2021-01-12| B16A| Patent or certificate of addition of invention granted|Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 12/01/2021, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
申请号 | 申请日 | 专利标题
US32176410P| true| 2010-04-07|2010-04-07|
US61/321,764|2010-04-07|
US12/829,209|US9098363B2|2010-04-07|2010-07-01|Search extensibility to third party applications|
US12/829,209|2010-07-01|
PCT/US2010/050075|WO2011126510A1|2010-04-07|2010-09-23|Search extensibility to third party applications|
[返回顶部]